package com.tianquan.Transactional.annotation;

/**
 * @author starsea
 * @date 2024-10-03 下午9:14
 */

import org.springframework.transaction.annotation.Transactional;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

/**
 * @author pzz
 * @Date 2023-06-14 9:29
 * @implNote
 */

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RedissonLock {

    // 开启事务 如果不需要组合的话 可选择使用此注解
    // 但需要稍微改一下后续的代码
//    boolean transactional() default false;
    // 组合事务注解 最推荐 很方便
    Transactional transactional();

    // 开启锁
    boolean lock() default true;

    // 锁的名字
    String lockName();

    // 超时时间
    long timeOut() default 30;

    // 单位
    TimeUnit unit() default TimeUnit.SECONDS;
}


